﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JSMerge {

	public class FileSetting {

		private string m_FileName = null;
		private int m_MoveBy = 0;
		private int? m_MoveTo = null;
		private bool m_StripComments = false;
		private bool m_StripReferences = true;
		private bool m_NewLine = true;

		#region " Properties "

		/// <summary>
		/// The file name (full path) of the file to be included in the output.
		/// </summary>
		public string FileName {
			get { return m_FileName; }
			set { m_FileName = value; }
		}

		/// <summary>
		/// Indicates the file should be moved (in it's combining order) by the specified amount.
		/// </summary>
		public int MoveBy {
			get { return m_MoveBy; }
			set { m_MoveBy = value; }
		}

		/// <summary>
		/// Moves the file to the specified index in the combination order.
		/// </summary>
		public int? MoveTo {
			get { return m_MoveTo; }
			set { m_MoveTo = value; }
		}

		/// <summary>
		/// Indicates all code comments should be stripped from this file.
		/// </summary>
		public bool StripComments {
			get { return m_StripComments; }
			set { m_StripComments = value; }
		}

		/// <summary>
		/// Indicates VS2012 reference tags should be stripped from this file.
		/// </summary>
		public bool StripReferences {
			get { return m_StripReferences; }
			set { m_StripReferences = value; }
		}

		/// <summary>
		/// Indicates a new-line should be added after a file is inserted.
		/// </summary>
		public bool NewLine {
			get { return m_NewLine; }
			set { m_NewLine = value; }
		}

		#endregion

		#region " Constructor(s) "

		public FileSetting() { }

		public FileSetting( string fileName ) {
			this.FileName = fileName;
		}

		#endregion

		#region " Methods "

		#endregion

	}

}

